This invention relates generally to non-volatile memory management, and more particularly to the monitoring of read and write disturbs on memory cells of non-volatile memory for refresh of the cells to prevent data loss.
An ideal memory system is fast, cheap, persistent and large (highly dense). Dynamic random access memory (DRAM) is fast and cheap, but is not persistent. Non-volatile memory (NVM) is persistent memory that is characterized by its ability to retain a memory state in the absence of applied power, and advances in NVM technologies have significantly improved its speed, density and cost. The most common type of silicon-based semiconductor NVM is Flash memory which stores data as charge on the floating gate of a MOSFET device and can be electrically erased. The charge on the floating gate essentially blocks current flow through the device. Flash is widely used for portable Flash drive devices and is increasingly being used in solid state drives (SSDs) as replacements for rotating magnetic disk drive memories. Flash memory, however, has some drawbacks over DRAM. It cannot be updated in-place—a whole block must be erased before it can be reprogrammed. There are, however, many other types of NVM which have been developed or which are under development that can be written in-place. These include, for instance, magnetoresistive random access memory (MRAM) which stores data in a magnetic storage element, spin-transfer torque (SST) random access memory based upon the orientation of the spin of a magnetic layer, and phase change memory (PCM) which is based upon a reversible phase conversion between the amorphous and crystalline states of a chalcogenide glass due to heat caused by the passage of current through the material, to name a few.
Although NVM locations are non-volatile, their states are persistent but not permanent—they may change over time. NVM storage elements (target locations) are written and read using electrical current. Writing typically uses a much larger current than reading. When a target location is read, it is disturbed and can slightly change its state. After the location is read many times, its data value becomes unreliable and the location can actually flip values. This is well known as a “read disturb”. When a target location is written, it is not disturbed because a new value is written to the location. However, other locations (victim locations) that are physically close to the target location that was written may be disturbed, and over time they can also flip values. As NVM media becomes more dense, memory locations (cells) become closer together, and memory cells may be stacked in layers. Accordingly, the memory cells can be more affected by write disturbs.
In order to maintain an acceptably low error rate, the data in a memory cell needs to be refreshed when the number of disturbs becomes too high. Depending upon the type of NVM, the data can be refreshed by either rewriting it in-place, or moving it to another location. One possible way of determining when a particular memory location (cell) needs to be refreshed is by counting the number of reads and writes to each location, periodically scanning all counters, and combining the read disturb influences on the target location and the surrounding write disturb influences to decide whether to refresh the location. There are several disadvantages with this approach. One is that memory bandwidth is wasted as every location's counters must be checked during each asynchronous counter sweep regardless of whether a location has been disturbed or not. Another disadvantage is that a memory location may experience several disturbances between asynchronous sweeps, and may be disturbed beyond its ability to reliably retain data before it can be refreshed. Thus, the data may be lost.
It is desirable to provide new and improved approaches for monitoring disturbs to memory locations of NVM that address the foregoing and other disadvantages of known approaches, and it is to these ends that the present invention is directed.